/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package ms.jasim.model.event.util;

import ms.jasim.framework.IValueProvider;

import ms.jasim.model.ModelObject;
import ms.jasim.model.NamedModelObject;

import ms.jasim.model.event.*;

import ms.utils.INamedItem;

import org.eclipse.emf.common.notify.Adapter;
import org.eclipse.emf.common.notify.Notifier;

import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * The <b>Adapter Factory</b> for the model.
 * It provides an adapter <code>createXXX</code> method for each class of the model.
 * <!-- end-user-doc -->
 * @see ms.jasim.model.event.EventPackage
 * @generated
 */
public class EventAdapterFactory extends AdapterFactoryImpl {
	/**
	 * The cached model package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static EventPackage modelPackage;

	/**
	 * Creates an instance of the adapter factory.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EventAdapterFactory() {
		if (modelPackage == null) {
			modelPackage = EventPackage.eINSTANCE;
		}
	}

	/**
	 * Returns whether this factory is applicable for the type of the object.
	 * <!-- begin-user-doc -->
	 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
	 * <!-- end-user-doc -->
	 * @return whether this factory is applicable for the type of the object.
	 * @generated
	 */
	@Override
	public boolean isFactoryForType(Object object) {
		if (object == modelPackage) {
			return true;
		}
		if (object instanceof EObject) {
			return ((EObject)object).eClass().getEPackage() == modelPackage;
		}
		return false;
	}

	/**
	 * The switch that delegates to the <code>createXXX</code> methods.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EventSwitch<Adapter> modelSwitch =
		new EventSwitch<Adapter>() {
			@Override
			public Adapter caseEventModel(EventModel object) {
				return createEventModelAdapter();
			}
			@Override
			public Adapter caseEventSet(EventSet object) {
				return createEventSetAdapter();
			}
			@Override
			public Adapter caseEvent(Event object) {
				return createEventAdapter();
			}
			@Override
			public Adapter caseEventPrecondition(EventPrecondition object) {
				return createEventPreconditionAdapter();
			}
			@Override
			public Adapter caseAbsoluteTime(AbsoluteTime object) {
				return createAbsoluteTimeAdapter();
			}
			@Override
			public Adapter caseEventRelativeTime(EventRelativeTime object) {
				return createEventRelativeTimeAdapter();
			}
			@Override
			public Adapter caseActionRelativeTime(ActionRelativeTime object) {
				return createActionRelativeTimeAdapter();
			}
			@Override
			public Adapter caseCompositePrecondition(CompositePrecondition object) {
				return createCompositePreconditionAdapter();
			}
			@Override
			public Adapter caseReactionList(ReactionList object) {
				return createReactionListAdapter();
			}
			@Override
			public Adapter caseEventReaction(EventReaction object) {
				return createEventReactionAdapter();
			}
			@Override
			public Adapter caseModifyModelReaction(ModifyModelReaction object) {
				return createModifyModelReactionAdapter();
			}
			@Override
			public Adapter caseModifyObjectReaction(ModifyObjectReaction object) {
				return createModifyObjectReactionAdapter();
			}
			@Override
			public Adapter caseReplanReaction(ReplanReaction object) {
				return createReplanReactionAdapter();
			}
			@Override
			public Adapter caseForAllReaction(ForAllReaction object) {
				return createForAllReactionAdapter();
			}
			@Override
			public Adapter caseForAllDomain(ForAllDomain object) {
				return createForAllDomainAdapter();
			}
			@Override
			public Adapter caseForAllGoalDomain(ForAllGoalDomain object) {
				return createForAllGoalDomainAdapter();
			}
			@Override
			public Adapter caseModelObject(ModelObject object) {
				return createModelObjectAdapter();
			}
			@Override
			public Adapter caseINamedItem(INamedItem object) {
				return createINamedItemAdapter();
			}
			@Override
			public Adapter caseNamedModelObject(NamedModelObject object) {
				return createNamedModelObjectAdapter();
			}
			@Override
			public Adapter caseIValueProvider(IValueProvider object) {
				return createIValueProviderAdapter();
			}
			@Override
			public Adapter defaultCase(EObject object) {
				return createEObjectAdapter();
			}
		};

	/**
	 * Creates an adapter for the <code>target</code>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param target the object to adapt.
	 * @return the adapter for the <code>target</code>.
	 * @generated
	 */
	@Override
	public Adapter createAdapter(Notifier target) {
		return modelSwitch.doSwitch((EObject)target);
	}


	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.EventModel <em>Model</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.EventModel
	 * @generated
	 */
	public Adapter createEventModelAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.EventSet <em>Set</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.EventSet
	 * @generated
	 */
	public Adapter createEventSetAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.Event <em>Event</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.Event
	 * @generated
	 */
	public Adapter createEventAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.EventPrecondition <em>Precondition</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.EventPrecondition
	 * @generated
	 */
	public Adapter createEventPreconditionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.AbsoluteTime <em>Absolute Time</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.AbsoluteTime
	 * @generated
	 */
	public Adapter createAbsoluteTimeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.EventRelativeTime <em>Relative Time</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.EventRelativeTime
	 * @generated
	 */
	public Adapter createEventRelativeTimeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ActionRelativeTime <em>Action Relative Time</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ActionRelativeTime
	 * @generated
	 */
	public Adapter createActionRelativeTimeAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.CompositePrecondition <em>Composite Precondition</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.CompositePrecondition
	 * @generated
	 */
	public Adapter createCompositePreconditionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ReactionList <em>Reaction List</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ReactionList
	 * @generated
	 */
	public Adapter createReactionListAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.EventReaction <em>Reaction</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.EventReaction
	 * @generated
	 */
	public Adapter createEventReactionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ModifyModelReaction <em>Modify Model Reaction</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ModifyModelReaction
	 * @generated
	 */
	public Adapter createModifyModelReactionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ModifyObjectReaction <em>Modify Object Reaction</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ModifyObjectReaction
	 * @generated
	 */
	public Adapter createModifyObjectReactionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ReplanReaction <em>Replan Reaction</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ReplanReaction
	 * @generated
	 */
	public Adapter createReplanReactionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ForAllReaction <em>For All Reaction</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ForAllReaction
	 * @generated
	 */
	public Adapter createForAllReactionAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ForAllDomain <em>For All Domain</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ForAllDomain
	 * @generated
	 */
	public Adapter createForAllDomainAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.event.ForAllGoalDomain <em>For All Goal Domain</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.event.ForAllGoalDomain
	 * @generated
	 */
	public Adapter createForAllGoalDomainAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.ModelObject <em>Object</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.ModelObject
	 * @generated
	 */
	public Adapter createModelObjectAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.utils.INamedItem <em>INamed Item</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.utils.INamedItem
	 * @generated
	 */
	public Adapter createINamedItemAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.model.NamedModelObject <em>Named Model Object</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.model.NamedModelObject
	 * @generated
	 */
	public Adapter createNamedModelObjectAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for an object of class '{@link ms.jasim.framework.IValueProvider <em>IValue Provider</em>}'.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null so that we can easily ignore cases;
	 * it's useful to ignore a case when inheritance will catch all the cases anyway.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @see ms.jasim.framework.IValueProvider
	 * @generated
	 */
	public Adapter createIValueProviderAdapter() {
		return null;
	}

	/**
	 * Creates a new adapter for the default case.
	 * <!-- begin-user-doc -->
	 * This default implementation returns null.
	 * <!-- end-user-doc -->
	 * @return the new adapter.
	 * @generated
	 */
	public Adapter createEObjectAdapter() {
		return null;
	}

} //EventAdapterFactory
